This invention relates generally to the field of networking and more specifically to a method and apparatus for maintaining network performance while resolving unknown destination addresses in a switched network.
Computer systems communicate with each other via a network. One example of a networking architecture that allows different computer systems (hereinafter also referred to as nodes) to exchange data and commands is a xe2x80x9cswitchedxe2x80x9d network architecture. In a switched network architecture, multiple nodes are coupled together via a switch to form a local switched network. Larger networks are provided by interconnecting the switches in different local networks. With such an arrangement, different nodes coupled to different local switches may exchange data by transferring data and commands between the switches of the different local networks. Data and commands are typically transferred between a source node and a destination node in a packet format. The packet may include a source identifier, identifying the source node that issued the packet, and a destination identifier, identifying the destination node (i.e., the node to which the packet is to be transferred), along with the commands and/or data.
Each switch in the network includes a directory for storing node location information that can be used to determine a path between the source and destination nodes in the network. The information, which may be in the form of an address that includes a switch address and a node address, is determined during an operational phase known as address resolution. During this phase, as a packet is received by the switch, the destination identifier of the packet is compared with the information in the directory of the switch, and, in response to the information, the packet is forwarded either directly to a node coupled to the switch, or to another switch to enable the packet to reach the appropriate destination node.
A problem arises during the address resolution phase when a packet is received and the directory in the receiving (local) switch includes no information for that packet destination. When this occurs, the local switch must determine the location of the destination node. One method of determining a location is to have the local switch issue an interswitch resolve packet to all the interconnected switches in the network. The interswitch resolve packet includes a resolve command and the destination identifier of the packet. Each switch that receives the interswitch resolve packet accesses its directory to search for the destination identifier. If any switch has such information, it responds to the interswitch resolve packet by forwarding, back to the switch that issued the interswitch resolve packet, an Acknowledgment response that identifies the location of the destination. The original receiving switch may then update its directory, and the packet is forwarded to the destination node.
If the switches that receive the interswitch resolve packet do not have any information for the destination identifier, they respond to the interswitch resolve packet by forwarding an Unknown response. It may occur that all of the switches return an Unknown response, thereby indicating that the destination node is unknown to all of the switches in the network. The destination node may be unknown for two reasons. First, the directory of each switch is typically updated when a node issues a packet or responds to a packet over the network. If one of the nodes is a quiet node, i.e., a type of node that only responds to packets, but rarely initiates packets, it may be that the node has not yet needed to respond to any messages and that therefore the directory in the local switch has not been updated with the address of the quiet node. A second reason that a node may be unknown (to the switches) may be because the node has been temporarily or permanently removed from the network unbeknownst to other computers (nodes) within the network.
When the address of the destination node is not located during the address resolution phase, one method of resolving the location of the destination node is for the local switch (which received the data packet) to broadcast the data packet to all of the nodes in the network. If the destination node is included in the network it will respond to the packet. When the destination node responds to the packet, the location of the destination node is updated in the directories of both the switch local to the destination node and the switch local to the source node. This method of broadcasting packets is particularly successful for discovering the addresses needed to communicate with quiet nodes.
However, the method of broadcasting packets described above cannot obtain location information for nodes that have been temporarily or permanently removed from the network. In addition, when no response is received for the broadcast packet, the broadcast is generally repeated at regular time intervals. The result is that the network may become flooded with packets for destination nodes that are not even connected to the network, thereby degrading the overall performance of the switched network.
According to one aspect of the invention, a method is provided for enhancing network performance while attempting to resolve destination addresses in a switched network system. The switched network system includes a plurality of interconnected local networks, each of the local networks including a switch and at least one associated node. The method includes the steps of a local switch issuing interswitch resolve packets to the other switches in the network system in response to a packet issued by a node associated with the local switch for access to a destination when the address of the destination is unknown by the local switch, and selectively precluding the issuance of the interswitch resolve packets in order to enhance performance of the switched network system.
According to another aspect of the invention, a switch is provided for use in a switched network system comprising a plurality of interconnected local networks, each local network comprising a switch and at least one associated node. The switch includes a directory for storing addresses of nodes known to the switch. The switch further includes: means for storing a destination identifier of a packet issued by at least one associated node when the address of the destination is not stored in the directory of any of the switches in the switched network; means for issuing interswitch resolve packets to attempt to resolve the destination address; and means for selectively precluding issuance of the resolve packets when an undesirable number of resolve packets have been issued for the destination identifier.
More specifically, the disadvantages of the prior art address resolution methods are overcome in one embodiment of the present invention through the use of an unresolved address table in conjunction with a blocked address table. When the address of a destination node is not able to be resolved, a destination identifier is stored in the unresolved address table, along with a count value, and one or more time stamp values. Also stored at the local switch is a threshold value and a test count value. The test count value indicates a maximum number of interswitch resolve packets that are to be issued for the destination identifier before considering whether to block the same. When the rate of sending resolve packets meets or exceeds the threshold value, the destination identifier is sent to the blocked address table and some or all of the subsequent resolve packets will be filtered (blocked).
More specifically, each time that the address resolution fails, the count associated with the destination identifier is incremented. When the count value reaches the test count value, it is determined whether or not the resolve packets have been sent at a rate (indicated by the threshold value) that would degrade the performance of the network. The rate at which interswitch resolve packets have been issued may be determined by comparing a first time stamp, set when a first interswitch resolve packet (for the destination identifier) is sent over the network, against a second time stamp, set when the last resolve packet (for the destination identifier) was sent over the network. If the rate of packets sent during this time period is greater than or equal to the threshold value, then the sending of interswitch resolve packets is degrading the performance of the network. In an alternative embodiment, the threshold value may specify a time period (as opposed to a rate or frequency), and an acceptable rate may then be determined by comparing the time period specified by the threshold value to the difference between the time stamp values.
When it is determined that the resolve packets are degrading the performance of the network, the destination identifier is forwarded to the blocked address table. Subsequent interswitch resolve packets to the node having the destination identifier are selectively filtered to ensure that they do not unreasonably degrade the computer network. Preferably, some interswitch resolve packets are still permitted to be forwarded over the network so that when the node having the destination identifier is subsequently returned to the network the address may be resolved. With such an arrangement, address resolution may be achieved while enhancing the performance of the computer network.